В этом упражнении вы будете использовать записи ACL, чтобы предоставить группе доступ к каталогу и запретить доступ пользователю, зададите ACL по умолчанию для каталога и убедитесь, что новые файлы, создаваемые в этом каталоге, наследуют ACL по умолчанию.
Результаты
Вы сможете:
с помощью записей ACL предоставить доступ группе и запретить доступ одному из ее участников;
убедиться, что существующие файлы и каталоги отражают новые разрешения ACL;
задать ACL по умолчанию для каталога и убедиться, что новые файлы и каталоги наследуют его конфигурацию.
Войдите на workstation как пользователь student с паролем student.
workstation
student
На workstation выполните команду lab acl-secure start. Эта команда запускает подготовительный сценарий, который проверяет доступность машины servera в сети. Сценарий также создает пользователей, группы, каталоги и файлы для этого упражнения.
servera
[student@workstation ~]$ lab acl-secure start
[student@workstation ~]$
lab acl-secure start
Операторы и консультанты являются сотрудниками компании ИТ-поддержки. Им нужно обмениваться информацией друг с другом. На servera есть правильно настроенный общий каталог /shares/content, в котором размещены файлы.
/shares/content
В настоящее время только у участников группы operators есть доступ к этому каталогу, но участниками группы consultants также необходим полный доступ.
operators
consultants
Пользователь consultant1 является участником группы consultants, но он неоднократно создавал проблемы компании, поэтому у него не должно быть доступа к каталогу.
consultant1
Ваша задача — настроить ACL для этого каталога и его содержимого так, чтобы у участников группы consultants, за исключением пользователя consultant1, был полный доступ. Убедитесь, что новые файлы и каталоги в /shares/content получат правильные ACL.
Важная информация:
Пользователи sysadmin1 и оператор1 ― участники группы operators.
sysadmin1
оператор1
Пользователи consultant1 и consultant2 ― участники группы consultants.
consultant2
Каталог /shares/content содержит подкаталог с именем server-info и различные файлы для проверки ACL. Кроме того, каталог /shares/content содержит исполняемый сценарий loadvg.sh, который можно использовать для тестирования.
server-info
loadvg.sh
Пароли пользователей sysadmin1, operator1, consultant1 и consultant2 ― redhat.
operator1
redhat
Все изменения должны выполняться с каталогом /shares/content и файлами, находящимися в нем. Не изменяйте каталог /shares.
/shares
Войдите на servera и переключитесь на пользователя root.
root
С помощью команды ssh войдите на servera как пользователь student. Системы настроены на использование ключей SSH для аутентификации, поэтому пароль не требуется.
[student@workstation ~]$ ssh student@servera ...output omitted... [student@servera ~]$
ssh student@servera
[student@servera ~]$
Выполните команду sudo -i, чтобы переключиться на пользователя root. Пароль для пользователя student — student.
[student@servera ~]$ sudo -i [sudo] password for student: student [root@servera ~]#
sudo -i
[root@servera ~]#
Добавьте ACL для каталога /shares/content и всего его содержимого.
С помощью команды setfacl рекурсивно обновите разрешения для каталога /shares/content. Предоставьте группе consultants разрешения на чтение, запись и условное выполнение.
[root@servera ~]# setfacl -Rm g:consultants:rwX /shares/content
setfacl -Rm g:consultants:rwX /shares/content
Опция -R означает «рекурсивно», -m ― изменение/добавление, rwX ― применение разрешений на чтение, запись и условное выполнение.
-R
-m
rwX
С помощью команды setfacl рекурсивно обновите разрешения для каталога /shares/content. Запретите пользователю consultant1 из группы consultants любой доступ.
[root@servera ~]# setfacl -Rm u:consultant1:- /shares/content
setfacl -Rm u:consultant1:- /shares/content
Опция -R означает «рекурсивно», -m ― изменение/добавление, «-» ― отказ в доступе.
-
Добавьте записи ACL по умолчанию для включения механизма наследования.
С помощью команды setfacl добавьте правило доступа по умолчанию для группы consultants. Предоставьте разрешения на чтение, запись и выполнение для каталога content.
content
[root@servera ~]# setfacl -m d:g:consultants:rwx /shares/content
setfacl -m d:g:consultants:rwx /shares/content
Опция -m означает изменение/добавление, d:g — группа по умолчанию, rwx — применение разрешений на чтение, запись и выполнение (для создания подкаталогов и доступа к ним).
d:g
rwx
С помощью команды setfacl добавьте правило доступа по умолчанию для пользователя consultant1. Полностью запретите доступ к каталогу content.
[root@servera ~]# setfacl -m d:u:consultant1:- /shares/content
setfacl -m d:u:consultant1:- /shares/content
Опция -m означает изменение/добавление, d:u ― пользователь по умолчанию, «-» ― отсутствие разрешений
d:u
Проверьте изменения ACL.
У пользователя consultant2 должна быть возможность читать любой файл и создать новый каталог с новым файлом.
У пользователя consultant1 не должно быть возможности читать, изменять и выполнять какие-либо файлы; в частности, ему запрещено отображать содержимое каталога.
Используйте команду su - user для переключения на тестовых пользователей. Используйте команду exit или Ctrl+D для выхода из тестовой оболочки.
user
[root@servera ~]# exit [student@servera ~]$ su - consultant2 Password: redhat [consultant2@servera ~]$ cd /shares/content/
exit
su - consultant2
[consultant2@servera ~]$
cd /shares/content/
Выполните команду cat, чтобы убедиться, что пользователь consultant2 может читать файл.
[consultant2@servera content]$ cat serverb-loadavg.txt ################################################# serverb.lab.example.com ################################################# Wed Mar 25 15:25:19 EDT 2019 ################################################# ldavg 0.18, 0.06, 0.05 #################################################
[consultant2@servera content]$
cat serverb-loadavg.txt
Запустите сценарий loadavg.sh, чтобы убедиться, что пользователь consultant2 может выполнить файл.
[consultant2@servera content]$ ./loadavg.sh ldavg 0.00, 0.00, 0.04
./loadavg.sh
Создайте каталог с именем reports.
reports
Выполните команду echo, чтобы создать файл с любым содержимым, назовите файл test.txt и поместите его в новый каталог.
test.txt
Закончив, переключитесь обратно на пользователя student.
[consultant2@servera content]$ mkdir reports [consultant2@servera content]$ echo "TEST REPORT" > reports/test.txt [consultant2@servera content]$ exit logout [student@servera ~]$
mkdir reports
echo "TEST REPORT" > reports/test.txt
Выполните вход как пользователь consultant1. Как пользователь consultant1 выполните команду cd, чтобы попробовать перейти в каталог, а также попробуйте отобразить содержимое каталога с помощью команды ls. Ни одна из команд не будет выполнена, и будет выдано сообщение Permission denied.
Permission denied
Как пользователь consultant1 попробуйте выполнить еще несколько команд, которые выполнялись для пользователя consultant2, чтобы дополнительно убедиться в отсутствии доступа. Используйте полный путь (/shares/content), поскольку вы не можете использовать cd для перехода в каталог.
Закончив тестирование разрешений под пользователем consultant1, переключитесь обратно на пользователя student.
[student@servera ~]$ su - consultant1 Password: redhat [consultant1@servera ~]$ cd /shares/content/ -bash: cd: /shares/content/: Permission denied [consultant1@servera ~]$ ls /shares/content/ ls: cannot open directory '/shares/content/': Permission denied [consultant1@servera ~]$ cat /shares/content/serverb-loadavg.txt cat: /shares/content/serverb-loadavg.txt: Permission denied [consultant1@servera ~]$ exit logout [student@servera ~]$
su - consultant1
[consultant1@servera ~]$
ls /shares/content/
cat /shares/content/serverb-loadavg.txt
Выполните вход как пользователь sysadmin1. Используйте команду getfacl, чтобы отобразить записи ACL для каталогов /shares/content и /shares/content/reports.
/shares/content/reports
[student@servera ~]$ su - sysadmin1 Password: redhat [sysadmin1@servera ~]$ getfacl /shares/content getfacl: Removing leading '/' from absolute path names # file: shares/content/ # owner: root # group: operators # flags: -s- user::rwx user:consultant1:--- group::rwx group:consultants:rwx mask::rwx other::--- default:user::rwx default:user:consultant1:--- default:group::rwx default:group:consultants:rwx default:mask::rwx default:other::--- [sysadmin1@servera ~]$ getfacl /shares/content/reports getfacl: Removing leading '/' from absolute path names # file: shares/content/reports # owner: consultant2 # group: operators # flags: -s- user::rwx user:consultant1:--- group::rwx group:consultants:rwx mask::rwx other::--- default:user::rwx default:user:consultant1:--- default:group::rwx default:group:consultants:rwx default:mask::rwx default:other::--- [sysadmin1@servera ~]$ exit logout [student@servera ~]$
su - sysadmin1
[sysadmin1@servera ~]$
getfacl /shares/content
getfacl /shares/content/reports
Выйдите с servera.
[student@servera ~]$ exit logout Connection to servera closed. [student@workstation ~]$
Конец
На workstation запустите сценарий lab acl-secure finish, чтобы закончить упражнение.
[student@workstation ~]$ lab acl-secure finish
lab acl-secure finish
Упражнение завершено.